New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

json-schema-diff

Package Overview
Dependencies
Maintainers
3
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-schema-diff

A language agnostic CLI tool and nodejs api to identify differences between two json schema files.

  • 0.10.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
125K
increased by7.18%
Maintainers
3
Weekly downloads
 
Created
Source

Json Schema Diff

A language agnostic CLI tool and nodejs api to identify differences between two json schema files.

Requirements

  • nodejs 6.x or higher (tested using 6.x, 8.x and 9.x)
  • npm 2.x or higher (tested using 2.x, 3.x and 5x)

Installation

Install the tool using npm and add it to the package.json

npm install json-schema-diff --save-dev

Usage

This tool identifies differences between two json schema files. KEYWORDS.md contains the details of what json schema keywords are supported. Differences are classified into two broad groups, added and removed.

Added differences are areas where the destination schema has become more permissive relative to the source schema. For example {"type": "string"} -> {"type": ["string", "number"]}.

Removed differences are areas where the destination schema has become more restrictive relative to the source schema. For example {"type": ["string", "number"]} -> {"type": "string"}.

Usage as a cli tool

Invoke the tool with a file path to the source schema file and the destination schema file. These files should be in JSON format and be valid according to the json schema draft-07 specification.

The tool will return two json schemas as output, one representing the values that were added by the destination schema and the other representing the values that were removed by the destination schema.

The tool will fail if any removed differences are detected.

Example

/path/to/source-schema.json

{
  "type": "string"
}

/path/to/destination-schema.json

{
  "type": ["string", "number"]
}

Invoking the tool

json-schema-diff /path/to/source-schema.json /path/to/destination-schema.json

Output

Non-breaking changes found between the two schemas.

Values described by the following schema were added:
{
    "type": [
        "number"
    ]
}

Values described by the following schema were removed:
false

Usage as a nodejs api

Invoke the library with the source schema and the destination schema. These objects should be simple javascript objects and be valid according to the json schema draft-07 specification.

For full details of the nodejs api please refer to api-types.d.ts

Example

const jsonSchemaDiff = require('json-schema-diff');

const source = {type: 'string'};
const destination = {type: ['string', 'number']};

const result = await jsonSchemaDiff.diffSchemas({
    sourceSchema: source, 
    destinationSchema: destination
});

if (result.removalsFound) {
    console.log('Something was removed!');
}

if (result.additionsFound) {
    console.log('Something was added!');
}

Changelog

See CHANGELOG.md

Contributing

See CONTRIBUTING.md

License

See LICENSE.txt

Keywords

FAQs

Package last updated on 28 Feb 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc